1. Field of the Invention
The invention pertains generally to analyzing computer system performance. In particular, it pertains to expert systems for interpreting computer system performance measurements.
2. Description of the Related Art
Modern computer operating systems have become quite capable and equally complex, with a great deal of interdependency between the various resources that are managed by the operating system. Such resource management can include task priority, the allocation of memory, distribution of programs and data between disk/main memory/cache, spooling, and many others. As a result, much effort has been put into getting the maximum performance out of a system by monitoring the system and adjusting various parameters to improve the performance parameters that are considered most important in that particular system. In a related activity, application developers conduct similar optimization efforts to maximize performance in their application programs. These optimization efforts are generically known as system tuning.
Various types of analysis systems are used to implement system tuning. Some vendors have attempted to use so called ‘expert systems’. Expert systems incorporate a body of knowledge that is typically possessed by experts in a particular field, and an analytical framework that extracts the relevant portions of that knowledge to troubleshoot problems. Operators can then use those systems to analyze real-world problems and provide real-world solutions to those problems within that particular field.
Some analysis systems also use ‘fuzzy logic’, which is necessary when all the facts needed to accurately analyze a particular problem are not known. By examining the facts that are known, and assigning a probability to other data that isn't known for certain but is likely to be true, fuzzy logic can determine an answer that is likely to be true, and provide a confidence factor to indicate the likelihood of that answer actually being correct, given the incomplete state of the underlying assumptions.
Unfortunately, many analysis systems present their results in ways that are not easy for the human user to interpret. Numerical results from various activity monitors may be presented, but it is up to the user to determine the significance of those results and decide what should be done about them. This is especially true for analysis systems used for computer system performance tuning. Also, many such systems do not allow the user to supplement the database with “knowledge plug-ins”, or supplemental knowledge, to encapsulate performance tuning expertise for specific problem domains like database tuning, graphics tuning, etc., or to upgrade the existing tuning system as relevant knowledge evolves. Because of these shortcomings, only experienced system tuners are able to make full use of such performance tuning systems, and many software developers do not fully benefit from such tools.